package cn.itsource.readerwriter;

import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;

import cn.itsource.util.IoUtil;

/**
 *	字符流：
 *	使用于处理文本相关的文件
 *
 *		Reader 抽象类：
 *				|子类
 *			InputStreamReader（转换流）
 *				|子类
 *			FileReader：适用于读取字符相关的文件
 *				1. 构造方法：
 *						1.FileReader(File file) 
						2.FileReader(String fileName)	fileName：文件名（相对路径/绝对路径）
 *
 *				2. 读取方法：
 *						1. int read()读取一个字符
 *						2. int read(char[] c,int start,int length)读取制定长度的字符到char数组中
 *						3. int read(char[] c)读取字符到char数组中
 *				
 *		Writer 抽象类：（如果不刷新或者关流，所有数据都在缓冲区，而没有写到硬盘）
 *				|子类
 *			OutputStreamWriter（转换流）
 *				|子类
 *			FileWriter：适用于写出字符相关的文件
 *				1. 构造方法：
				 * 		1.FileWriter(File file) 	默认是false
						2.FileWriter(File file, boolean append)  
							append：表示是在文件末尾追加还是从头覆盖，如果true追加，false覆盖，默认是false
						3.FileWriter(String fileName) 	默认是false
						4.FileWriter(String fileName, boolean append)  
							fileName：文件名（相对路径/绝对路径）
 *				2. 写出方法：
 *						1. public Writer append(CharSequence csq,int start,int end)
 *						2. public Writer append(char c)
 *						3. public Writer append(CharSequence csq)
 *						4. public void write(char[] c)	该方法常常配合读取方法，进行文本文件复制操作
 *						5. public void write(String str)
 *						6. public void write(String str,int start,int end)
 *

 */
public class FileWriterTest {

	public static void main(String[] args) {
		/*
		 * 输出字符流构造方法
		 * 		1.FileWriter(File file) 	默认是false
				2.FileWriter(File file, boolean append)  
					append：表示是在文件末尾追加还是从头覆盖，如果true追加，false覆盖，默认是false
				3.FileWriter(String fileName) 	默认是false
				4.FileWriter(String fileName, boolean append)  
					fileName：文件名（相对路径/绝对路径）
		 */
		FileWriter fw = null;
		try {
			fw = new FileWriter("filewirter.txt");
			
			//调用方法读取
			//1. public Writer append(CharSequence csq,int start,int end)
			//2. public Writer append(char c)
			//3. public Writer append(CharSequence csq)
			//4. public void write(char[] c)	该方法常常配合读取方法，进行文本文件复制操作
			//5. public void write(String str)
			//6. public void write(String str,int start,int end)
			char[] c = new char[10];
			fw.append("今晚老地方见，3308房！");
			String str = "苍苍，你好吗！";
			fw.write(str, 0, str.length());
			fw.flush();//刷新方法，将缓冲器的数据写出到硬盘
			System.out.println("写出成功！");
		} catch (FileNotFoundException e) {
			System.out.println("未找到文件！");
			e.printStackTrace();
		} catch (IOException e) {
			System.out.println("写出失败！");
			e.printStackTrace();
		} finally {
			//调用工具类的关流方法
			IoUtil.closeIo(null,fw);
		}
		
	}

}
